The development of computerized distribution information systems, such as the Internet, allows users to link with servers and networks, and thus retrieve vast amounts of electronic information that was previously unavailable using conventional electronic media.
The Internet is based upon a suite of communication protocols known as the Transmission Control Protocol/Internet Protocol (TCP/IP) transmission protocol. A network that uses TCP/IP may be referred to as an Internet Protocol (IP) network. In TCP/IP, the standard describes how an Internet-connected computer should break data down into packets for transmission across the network, and how those packets should be addressed so that they arrive at their destination. IP is the connectionless part of the TCP/IP protocol. The TCP specifies how two Internet computers can establish a reliable data link by means of handshaking.
A major drawback of the Internet is the fact that the data transfer rate, commonly referred to as the “quality of service,” cannot be assured. That is, IP-based networks cannot assure that packets of data, e.g., real-time data, will arrive at the same time. For example, data such as real-time voice and video, as well as time-sensitive data communications, may be delayed because transmissions are broken into packets that can travel different routes and arrive at different times. Thus, quality of service may refer to the ability to provide different traffic streams with different levels of service, e.g., real-time data with a higher priority of service than non-real-time data. A means of modifying the IP-based data networks to provide different traffic streams with different levels of service in terms of metrics such as available bandwidth, delay and packet loss, may be achieved by implementing the following protocols.
A high-level standard or protocol for adding quality of service to IP networks may be referred to as DIFFerentiated SERVices (Diffserv). In a network implementing the Diffserv protocol, different traffic streams requiring different quality of service, i.e., different levels of service, may be classified at the edge of the network by a network device, e.g., router, using what is commonly referred to as a Diffserv Code Point (DSCP) field located in the type of service field in the header of the received IP packet. Typically, the DSCP field may comprise different values where each value may correspond to different types of treatment, e.g., forward IP packet using best effort, forward IP packet using assured forwarding, forward IP packet using expedited forwarding.
Another protocol for adding quality of service to IP networks may be referred to as Multi-Protocol Label Switching (MPLS). MPLS may refer to an underlying protocol that may be used in conjunction with a high-level protocol such as Diffserv. MPLS may use fixed-length values that are commonly called labels or tags. The labels may contain forwarding information which may be attached to IP packets by a router that sits at the edge of the network known as a Label Edge Router (LER). The attached forwarding information may commonly be referred to as an MPLS shim header. Typically, the MPLS shim header is prepended to the IP packet header. The MPLS shim header may comprise a type of service field commonly referred to as the “EXP” field which may store the quality of service, i.e., the type of service, to be performed on the received IP packet. The routers within the core of the network, known as Label Switch Routers (LSR's), examine the label more quickly than if they had to look up destination addresses in a routing table.
By a network implementing Diffserv in conjunction with MPLS (commonly referred to as “Diffserv over MPLS”), end-to-end quality of service may be achieved. That is, by a network implementing Diffserv over MPLS, real-time data such as real-time voice and video, may be assured of leaving the source and arriving at the destination in a continuous manner. Typically, in a network implementing Diffserv over MPLS, part of the network may simply support Diffserv while another part of the network may simply support MPLS. That is, a portion of the Diffserv over MPLS network may comprise connections between routers that simply support Diffserv (referred to as “Diffserv connections”) as well as connections between routers that simply support MPLS (referred to as “MPLS connections”).
A network implementing Diffserv over MPLS may have to perform multiple memory accesses on a received IP packet. For example, a router at the edge of the network may receive an IP packet from an external network. The router may perform a memory access on its ingress side by performing a table look-up to determine the type of quality of service. Different networks may use different definitions for the same quality of service despite the fact that the networks use the same protocol, e.g., Diffserv. For example, an IP packet from a Diffserv network may define forwarding using best efforts with a value of 000001 in the DSCP field. Another Diffserv network may define forwarding using best efforts with a value of 000111 in the DSCP field. In another example, an IP packet from a MPLS network may define forwarding using best efforts with a value of 001 in the EXP field. Another MPLS network may define forwarding using best efforts with a value of 111 in the EXP field. Hence, a translation may occur at the ingress side of the edge router to determine the type of quality of service to be performed on the received IP packet.
In the Diffserv over MPLS network, the edge router may be coupled to another router using either a connection that supports MPLS or a connection that supports Diffserv. Hence, depending on whether the IP packet is to be routed to a router, e.g., LSR, router at the other edge of the Diffserv over MPLS network, over a Diffserv connection or an MPLS connection, a different memory mapping must be performed. That is, a separate mapping table for mapping the quality of service to the appropriate DSCP value for the Diffserv connection or to the appropriate EXP value for the MPLS connection must be maintained. For example, a value in the DSCP field may have to be mapped to a different DSCP value for the same quality of service. A value in the DSCP field may have to be mapped to a corresponding EXP value if the IP packet is being transmitted from a network that simply supports Diffserv to an MPLS connection in the Diffserv over MPLS network. A value in the EXP field may have to be mapped to a different EXP value for the same quality of service. A value in the EXP field may have to be mapped to a corresponding DSCP value if the IP packet is being transmitted from a network that simply supports MPLS to a Diffserv connection in the Diffserv over MPLS network.
If a single memory table may be used for mapping the quality of service to the appropriate DSCP value for the Diffserv connection or to the appropriate EXP value for the MPLS connection, then the number of memory accesses may be reduced. By reducing memory accesses, packet forwarding performance may be improved.
It would therefore be desirable to provide DSCP remapping and EXP remapping using a single memory table thereby being able to reduce the number of memory accesses and consequently improve forwarding performance.